Stored Procedures [dbo].[sp_asi_FlowdownNameIndex]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@co_idvarchar(10)10
@fieldNamevarchar(61)61
@fieldValuevarchar(8000)8000
@indexNamevarchar(31)31
Permissions
TypeActionOwning Principal
GrantExecuteIMIS
SQL Script
CREATE PROCEDURE sp_asi_FlowdownNameIndex
     @co_id varchar(10),
     @fieldName varchar(61),
     @fieldValue varchar(8000) = NULL,
     @indexName varchar(31) = NULL
AS
if @indexName is null
begin
   select @indexName = (case when ParameterName = 'Member_Control.Index1Fld' then '1'
     when ParameterName = 'Member_Control.Index2Fld' then '2'
     when ParameterName = 'Member_Control.Index3Fld' then '3'
     when ParameterName = 'Member_Control.Index4Fld' then '4'
     end) from System_Params where ParameterName like 'Member_Control.Index-3Fld' and ShortValue = @fieldName
end
if @indexName is not null
   begin
     declare @isAddress int
     select @isAddress = (case
       when LEFT(@fieldName,12) = 'Name_Address' then 1
       when @fieldName = 'Name.CITY' then 1
       when @fieldName = 'Name.STATE_PROVINCE' then 1
       when @fieldName = 'Name.ZIP' then 1
       when @fieldName = 'Name.COUNTRY' then 1
       when @fieldName = 'Name.MAIL_CODE' then 1
       when @fieldName = 'Name.CRRT' then 1
       when @fieldName = 'Name.BAR_CODE' then 1
       when @fieldName = 'Name.COUNTY' then 1
       when @fieldName = 'Name.FULL_ADDRESS' then 1
       when @fieldName = 'Name.WORK_PHONE' then 1
       when @fieldName = 'Name.FAX' then 1
       when @fieldName = 'Name.TOLL_FREE' then 1
       else 0
     end)
     declare @childID varchar(10)
     if @isAddress = 1
     begin
       declare Get_Address_Children cursor for select Name.ID from Name, Name_Address where CO_ID = @co_id AND COMPANY_RECORD = 0 AND Name.ID = Name_Address.ID AND Name.ADDRESS_NUM_1 = Name.MAIL_ADDRESS_NUM and Name.MAIL_ADDRESS_NUM = Name_Address.ADDRESS_NUM
       open Get_Address_Children
       fetch next from Get_Address_Children into @childID
       while @@FETCH_STATUS = 0
       begin
         exec sp_asi_UpdateNameIndex @childID, @fieldName, @fieldValue, @indexName
         fetch next from Get_Address_Children into @childID
       end
       close Get_Address_Children
       deallocate Get_Address_Children
     end
     else
     begin
       declare Get_Children cursor for select ID from Name where CO_ID = @co_id AND COMPANY_RECORD = 0
       open Get_Children
       fetch next from Get_Children into @childID
       while @@FETCH_STATUS = 0
       begin
         exec sp_asi_UpdateNameIndex @childID, @fieldName, @fieldValue, @indexName
         fetch next from Get_Children into @childID
       end
       close Get_Children
       deallocate Get_Children
     end
   end

GO
GRANT EXECUTE ON  [dbo].[sp_asi_FlowdownNameIndex] TO [IMIS]
GO
Uses